package com.hotel.common.config;

import com.hotel.common.utils.DBTools;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;

import jakarta.annotation.PostConstruct;

/**
 * 数据库配置类
 * 根据微服务类型自动配置数据源
 */
@Configuration
public class DatabaseConfig {
    
    @Value("${spring.application.name}")
    private String applicationName;
    
    @Value("${spring.datasource.url}")
    private String datasourceUrl;
    
    /**
     * 根据应用名称和数据库URL自动配置数据源
     */
    @PostConstruct
    public void configureDataSource() {
        // 根据数据库URL判断使用哪个数据源
        if (datasourceUrl.contains("hotel_cloud_po")) {
            // 业务数据库
            DBTools.setDataSource("business");
            System.out.println("配置数据源: business (hotel_cloud_po) for " + applicationName);
        } else if (datasourceUrl.contains("hotel_cloud")) {
            // 主数据库
            DBTools.setDataSource("primary");
            System.out.println("配置数据源: primary (hotel_cloud) for " + applicationName);
        } else {
            // 默认使用主数据库
            DBTools.setDataSource("primary");
            System.out.println("配置数据源: primary (default) for " + applicationName);
        }
    }
}
